package model;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Column;
import javax.persistence.JoinColumn;

@Entity
@Table(name="Persona")
public class Persona {
	private int id_persona;
	private String nombres;
	private String apellidoPaterno;
	private String apellidoMaterno;
	private long numeroDocumento;
	private Parametro tipoDocumento;
	private Direccion direccion;
	private String email;
	private long telefono;
	private Parametro estadoPersona;
	private Parametro tipoPersona;
	
	public Persona(){
		
	}
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id_persona")
	public int getId_persona() {
		return id_persona;
	}

	public void setId_persona(int id_persona) {
		this.id_persona = id_persona;
	}

	@Column(name = "nombres", length = 50)
	public String getNombres() {
		return nombres;
	}

	public void setNombres(String nombres) {
		this.nombres = nombres;
	}

	@Column(name = "apellidoPaterno", length = 50)
	public String getApellidoPaterno() {
		return apellidoPaterno;
	}
	
	public void setApellidoPaterno(String apellidoPaterno) {
		this.apellidoPaterno = apellidoPaterno;
	}

	@Column(name = "apellidoMaterno", length = 50)
	public String getApellidoMaterno() {
		return apellidoMaterno;
	}

	public void setApellidoMaterno(String apellidoMaterno) {
		this.apellidoMaterno = apellidoMaterno;
	}

	@Column(name = "numeroDocumento")
	public long getNumeroDocumento() {
		return numeroDocumento;
	}

	public void setNumeroDocumento(long numeroDocumento) {
		this.numeroDocumento = numeroDocumento;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "tipoDocumento", nullable = false)
	public Parametro getTipoDocumento() {
		return tipoDocumento;
	}

	public void setTipoDocumento(Parametro tipoDocumento) {
		this.tipoDocumento = tipoDocumento;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "direccion", nullable = false)
	public Direccion getDireccion() {
		return direccion;
	}

	public void setDireccion(Direccion direccion) {
		this.direccion = direccion;
	}

	@Column(name = "email", length = 50)
	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Column(name = "telefono")
	public long getTelefono() {
		return telefono;
	}

	public void setTelefono(long telefono) {
		this.telefono = telefono;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "estadoPersona", nullable = false)
	public Parametro getEstadoPersona() {
		return estadoPersona;
	}

	public void setEstadoPersona(Parametro estadoPersona) {
		this.estadoPersona = estadoPersona;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "tipoPersona", nullable = false)
	public Parametro getTipoPersona() {
		return tipoPersona;
	}

	public void setTipoPersona(Parametro tipoPersona) {
		this.tipoPersona = tipoPersona;
	}
}
